//#include<stdio.h>
////#include<stdlib.h>
//#include<string.h>
//int main()
//{
//	char arr1[]="abcde";
//	char arr2[8]="xx\0xx";
//	strcat(arr2,arr1);
//	printf("%s",arr2);
//	
//	
//	return 0;
//}

//#include<stdio.h>
//#include<string.h>
//int main()
//{
//	char arr1[]="this is an apple\0";
//	char arr2[]="is";
//	char* ret=strstr(arr1,arr2);
//	if(ret!=NULL)
//	{
//		printf("%s\n",ret);
//	}
//	else
//	{
//		
//		printf("找不到");
//	}
//	
//	
//	return 0;
//}
//#include <stdio.h>
//#include <string.h>
//int main ()
//{
//	char str[] ="This is a simple string";
//	char * pch;
//	pch = strstr (str,"simple");
//	strncpy (pch,"sample",6);
//	printf("%s\n", str);
//	return 0;
//}
#include <stdio.h>
#include <string.h>
char* my_strstr(const char* str1,const char* str2)
{
	if(*str2=='\0')
	{
		return (char*)str1;
	}
	char*a=(char*)str1;
	while(*a)
	{
		char*s1=a;
		char *s2=str2;
		while(*s1&&*s2&&*s1==*s2)
		{
			s1++;
			s2++;
			
		}
		if(*s2=='\0')
		{
			return a;
		}
		
		a++;
	}
	return NULL;
	
}

int main()
{
	char arr1[] ="this is an apple";
	char *p;
	p = my_strstr(arr1,"apple");//补充：字符串字面量也会被当作指针
	//比如这里的"apple"字符串字面量，它在内存中会被储存为以\0结尾的字符数组
	//编译器同样会把它转换成指向其首字符s的const char*指针。
	strcpy(p,"abcde");
	printf("%s\n",arr1);
	return 0;
}

